package top.buluoluo.productservice.dto.response;

import lombok.Data;
import top.buluoluo.productservice.entity.ProductSpu;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Data
public class SpuDTO {
    // SPU基本信息
    private Long id;
    private String spuCode;
    private Long merchantId;
    private String name;
    private String subTitle;

    // 分类和品牌信息
    private List<Integer> categoryIds;
    private String categoryName; // 如果需要显示分类名称
    private Long brandId;
    private String brandName;   // 如果需要显示品牌名称
    private String merchantName;

    // 图片信息
    private String mainImageUrl;
    private List<String> imageUrls; // 改为List更易处理

    // 价格和状态
    private BigDecimal basePrice;
    private Integer status;
    private Date shelfTime;

    // 时间信息
    private LocalDateTime createTime;
    private LocalDateTime updateTime;

    // 如果需要显示商品数量
    private Integer productCount;

    // 从实体转换的工厂方法
    public static SpuDTO fromEntity(ProductSpu entity) {
        SpuDTO dto = new SpuDTO();
        dto.setId(entity.getId());
        dto.setMerchantId(entity.getMerchantId());
        dto.setSpuCode(entity.getSpuCode());
        dto.setName(entity.getName());
        dto.setSubTitle(entity.getSubTitle());
        dto.setCategoryIds(entity.getCategoryIds());
        dto.setBrandId(entity.getBrandId());
        dto.setMainImageUrl(entity.getMainImageUrl());
        dto.setImageUrls(entity.getImageUrls());
        dto.setBasePrice(entity.getBasePrice());
        dto.setStatus(entity.getStatus());
        dto.setShelfTime(entity.getShelfTime());
        dto.setCreateTime(entity.getCreateTime());
        dto.setUpdateTime(entity.getUpdateTime());
        return dto;
    }
}